/**
 * 
 */
package evance.server.spring.core.interceptor;

import java.lang.reflect.Method;
import java.util.Date;

/**
 * @author BaoVuong
 *
 */
public abstract interface ExecuteTimeStore {
	public abstract void add(ExecuteTimeInfo paramExecuteTimeInfo);

	public static class ExecuteTimeInfo {
		private Method methodInvoked;
		private Date startTime;
		private Date endTime;
		private long durationMilisecond;

		public ExecuteTimeInfo(Method methodInvoked, Date startTime,
				Date endTime, long durationMilisecond) {
			this.methodInvoked = methodInvoked;
			this.startTime = startTime;
			this.endTime = endTime;
			this.durationMilisecond = durationMilisecond;
		}

		public Method getMethodInvoked() {
			return this.methodInvoked;
		}

		public Date getStartTime() {
			return this.startTime;
		}

		public Date getEndTime() {
			return this.endTime;
		}

		public long getDurationMilisecond() {
			return this.durationMilisecond;
		}
	}
}
